package main

type PaginationParam struct {
	PageIndex        int  `json:"page_index"`
	PageSize         int  `json:"page_size"`
	OnlyData         bool `json:"only_data"`
	OnlyDataButTotal bool `json:"only_data_but_total"`
}

type Entity interface {
	TableName() string
}

type RechargeQueryRsp struct {
	ID             int64   `json:"id" db:"id"`                           // 自增id
	SeqNo          int64   `json:"seq" db:"-"`                           // 序号
	AccountId      int64   `json:"account_id" db:"account_id"`           // 充值账户ID
	AccountName    *string `json:"account_name" db:"account_name"`       // 充值账户
	LeaderId       *int64  `json:"leader_id" db:"leader_id"`             // 上级账户ID
	RechargePoints uint64  `json:"recharge_points" db:"recharge_points"` // 充值积分
	BonusPoints    uint64  `json:"bonus_points" db:"bonus_points"`       // 赠送积分
	RefundPoints   uint64  `json:"refund_points" db:"refund_points"`     // 退款积分
	TotalPoints    uint64  `json:"total_points" db:"total_points"`       // 积分总额
	ResidualPoints uint64  `json:"residual_points" db:"residual_points"` // 剩余积分
	Creator        int64   `json:"creator" db:"creator"`                 // 创建人（修改人）
	CreatorName    *string `json:"creator_name" db:"-"`                  // 创建人名称
	CreateAt       int64   `json:"create_at" db:"create_at"`             // 创建时间
	UpdatedAt      int64   `json:"updated_at" db:"-"`                    // 更新时间
	Deleted        int64   `json:"deleted" db:"-"`                       // 标识记录是否被删除（0：没有被删除，1：被删除）
}

type IncomeStatistics struct {
	ID                   int64  `json:"id" db:"id"`                                         // 自增id
	Date                 string `json:"date" db:"date"`                                     // 日期（根据年、月、日格式显示，时间顺序按照最新一天开始往前面日期排列展示）
	BusinessTypeId       int64  `json:"business_type_id" db:"business_type_id"`             // 业务类型 business_type 表的主键id（由业务类型和单价配置的）
	BusinessTypeDesc     string `json:"business_type_desc" db:"business_type_desc"`         // 业务类型描述,business_type 表的desc字段
	PointsConsume        uint64 `json:"points_consume" db:"points_consume"`                 // 消耗积分（消耗积分=账户积分+赠送积分;就是收款充值所消耗的金额加上赠送消耗的金额的总和）
	PointsConsumeAccount uint64 `json:"points_consume_account" db:"points_consume_account"` // 账户消耗（收款充值所消耗的金额;账户消耗=利润）
	PointsConsumeGift    uint64 `json:"points_consume_gift" db:"points_consume_gift"`       // 赠送消耗（赠送给客户的积分所消耗的金额）
	AgentPoints          uint64 `json:"agent_points" db:"agent_points"`                     // 代理商利润
	Profit               uint64 `json:"profit" db:"profit"`                                 // 利润（收款充值所消耗的金额;利润=账户消耗）
	TaskNums             int64  `json:"task_nums" db:"task_nums"`                           // 任务数（渠道主上传料子的任务数）
	TaskNumsValid        int64  `json:"task_nums_valid" db:"task_nums_valid"`               // 有效数（渠道主上传料子去重之后的有效任务数）
	SieveSourceName      string `json:"sieve_source_name" db:"sieve_source_name"`           // 筛源名称
	AccountId            int64  `json:"account_id" db:"account_id"`                         // 账户id
	LeaderId             int64  `json:"leader_id" db:"leader_id"`                           // 上级账户id
	LeaderName           string `json:"leader_name" db:"leader_name"`                       // 上级账户名称
	CreateAt             int64  `json:"create_at" db:"create_at"`                           // 创建时间
	UpdatedAt            int64  `json:"updated_at" db:"updated_at"`                         // 更新时间
	Deleted              int64  `json:"deleted" db:"deleted"`                               // 标识记录是否被删除（0：没有被删除，1：被删除）
}

type DailyRechargeQueryResp struct {
	ID                  uint64 `json:"id" db:"id"`                                       // 自增id
	SeqNo               int64  `json:"seq" db:"-"`                                       // 序号
	Date                string `json:"date" db:"date"`                                   // 充值日期
	RechargePointsTotal uint64 `json:"recharge_points_total" db:"recharge_points_total"` // 充值积分总额
	BonusPointsTotal    uint64 `json:"bonus_points_total" db:"bonus_points_total"`       // 赠送积分总额
	LeaderId            uint64 `json:"leader_id" db:"leader_id"`                         // 上级账户ID
	LeaderName          string `json:"leader_name" db:"-"`                               // 上级账户名称
}

type QueryUserOpRecordResp struct {
	ID                   int64  `json:"id" db:"id"`                                         // 自增id
	TaskName             string `json:"task_name" db:"task_name"`                           // 任务名称（上传料子的任务名称）
	BusinessTypeName     string `json:"business_type_name" db:"business_type_name"`         // 业务类型名称
	OpTypeName           string `json:"op_type_name" db:"op_type_name"`                     // 操作类型名称
	PointsConsumeTotal   uint64 `json:"points_consume_total" db:"points_consume_total"`     // 总消耗积分（此次料子上传消耗了多少积分）
	PointsConsumeAccount uint64 `json:"points_consume_account" db:"points_consume_account"` // 账号积分消耗（赠送的积分消耗了多少）
	PointsConsumeGift    uint64 `json:"points_consume_gift" db:"points_consume_gift"`       // 赠送积分消耗（普通充值的积分消耗了多少）
	RechargePoints       uint64 `json:"recharge_points" db:"recharge_points"`               // 充值积分
	BonusPoints          uint64 `json:"bonus_points" db:"bonus_points"`                     // 赠送积分
	RefundPoints         uint64 `json:"refund_points" db:"refund_points"`                   // 退款积分
	ResidualPoints       uint64 `json:"residual_points" db:"residual_points"`               // 剩余积分
	AgentPoints          uint64 `json:"agent_points" db:"agent_points"`                     // 代理商利润(纯利润)
	AccountId            int64  `json:"account_id" db:"account_id"`                         // 账户id
	SieveSourceName      string `json:"sieve_source_name"  db:"account_id"`                 //  筛源名称
	LeaderId             int64  `json:"leader_id" db:"leader_id"`                           // 上级账户id
	LeaderName           string `json:"leader_name" db:"leader_name"`                       // 上级账户名称
	Creator              int64  `json:"creator" db:"creator"`                               // 创建人（修改人）ID
	CreateAt             int64  `json:"create_at" db:"create_at"`                           // 创建时间
	UpdatedAt            int64  `json:"updated_at" db:"updated_at"`                         // 更新时间
	Deleted              int64  `json:"deleted" db:"deleted"`                               // 标识记录是否被删除（0：没有被删除，1：被删除）
	CreatorName          string `json:"creator_name" db:"creator_name"`                     // 创建人（修改人）名称
}
